<?php

$vSql = "
SELECT
	p.cd_produto, p.nm_produto
FROM

	(
		SELECT
			p.cd_produto, p.nm_produto
		FROM
			produto AS p
		WHERE
			p.ic_brinde = '0'

		UNION

		SELECT
			CONCAT(pv.cd_produto, ',', pv.cd_produto_variacao) AS cd_produto,
			IF(pv.cd_opcao2 IS NULL,
			   CONCAT(p.nm_produto, ' -> ', v1.dc_opcao),
			   CONCAT(p.nm_produto, ' -> ', v1.dc_opcao, ' -> ', v2.dc_opcao)
			) AS nm_produto
		FROM
			produto_variacao AS pv
			INNER JOIN produto AS p
				ON pv.cd_produto = p.cd_produto
			INNER JOIN variacao_opcao_produto AS v1
				ON pv.cd_opcao1 = v1.cd_opcao
			INNER JOIN variacao_produto AS vp1
				ON v1.cd_variacao = vp1.cd_variacao
			LEFT JOIN variacao_opcao_produto AS v2
				ON pv.cd_opcao2 = v2.cd_opcao
			LEFT JOIN variacao_produto AS vp2
				ON v2.cd_variacao = vp2.cd_variacao
		WHERE
			p.ic_brinde = '0'

	) AS p

WHERE
	p.nm_produto LIKE '%" . str_replace(' ', '%', $_GET['q']) . "%'
ORDER BY
	nm_produto
LIMIT 100
";

$vRs = db_query($vSql);
$vData = array();
while($vRow = mysql_fetch_assoc($vRs)) {
	$vData[] = $vRow['cd_produto'] . ';' . $vRow['nm_produto'];
}
echo implode("\n", $vData);